package vm.project;

/**
 *
 * @author Etosha
 */
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;

public class TestImage {
    BufferedImage image;
    private int largeur;
    private int hauteur;
    private EchelleCouleur echCoul;
    
    public BufferedImage getImage() {
	return image;
    }
    
    
    public void creerImage(int l, int h) {
	// On crée l'image en RGB.
        this.hauteur = h;
        this.largeur = l;
	image= new BufferedImage(this.largeur, this.hauteur, BufferedImage.TYPE_INT_RGB);
    }
    
    public void creerImage(int l, int h, ArrayList<ArrayList<Point>> tabPoints) {
	this.creerImage(l, h);
        this.dessinerImage(tabPoints);
    }
    
    public void initEchelleCouleur(){
        echCoul = new EchelleCouleur();
    }
    
    public void initEchelleCouleur(double min,double max){
        echCoul = new EchelleCouleur(min, max);
    }
    
    private void dessinerImage(ArrayList<ArrayList<Point>> tabPoints) {
        Color couleur;
        Graphics2D g = image.createGraphics();

        
        int nbPointsLarg = tabPoints.size();
        int largPoint = this.largeur / nbPointsLarg;
        
        for(int i=0; i<tabPoints.size(); i++){
            int nbPointshaut = tabPoints.get(i).size();
            int hautPoint = this.hauteur / nbPointshaut;

            
            for(int j=0; j<tabPoints.get(i).size(); j++){
                couleur = echCoul.getCouleur(tabPoints.get(i).get(j).getV());
                g.setColor(couleur);
                g.fillRect(i*largPoint, j*hautPoint, i*largPoint+largPoint, j*hautPoint+hautPoint);
            }
        }
        
    }

    public void sauverImage(String nom, String format) {
	try {
	    // On sauve l'image histoire de rire un peu :
	    File fic= new File(nom+ "." + format);
	    ImageIO.write(getImage(), format, fic);
	} catch (IOException e) {
	    e.printStackTrace();
	}
    }
    
        
//    public static void main(String args[]) {
//	TestImage t = new TestImage();
//	t.creerImage(DIMX, DIMY);
//	t.sauverImage("toto", "png");
//	
//	// On affiche les formats disponibles :
//	String formats[]= ImageIO.getWriterFormatNames();
//	for(int i= 0; i< formats.length; i++)
//	    System.out.println(formats[i]);
//    }
    
}
